/**
 * @Author: Jiang Zhongxun
 * @Date: 2024-10-04 21:57:04
 * @FilePath: /Socket/practiceProject/src/utils/logUtil.c
 * @Description: 日志记录工具接口
 */
#include "../../include/db/dbOperation.h"
#include "../../include/utils/utils.h"

/**
 * 记录日志到 SQLite3 数据库的 logInfo 表中
 *
 * @param db SQLite3数据库指针
 * @param logType 日志类型
 * @param message 日志信息
 * @return 成功返回0，失败返回非0的数
 */
int logToLogInfoTable(sqlite3 *db, LogType logType, char *message)
{
    char *errmsg = NULL;
    const char *operationName = "logInfo";
    int ret;
    char sql[512] = {0};
    sprintf(sql, "INSERT INTO %s (logMsg, logType) VALUES ('%s', %d);",
            LOG_TABLE_NAME, message, logType);
    ret = execOperate(db, sql, &errmsg, operationName);
    if (ret != 0)
    {
        perror("记录到数据库日志表失败");
        printf("【%s】【%s】记录到数据库日志表失败!\n", (logType == 0 ? "系统日志" : "操作日志"), message);
        return -1;
    }
    printf("【%s】【%s】记录到数据库日志表成功!\n", (logType == 0 ? "系统日志" : "操作日志"), message);
    return 0;
}
